'use strict';

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var _gulp = require('gulp');

var _gulp2 = _interopRequireDefault(_gulp);

var _gulpLoadPlugins = require('gulp-load-plugins');

var _gulpLoadPlugins2 = _interopRequireDefault(_gulpLoadPlugins);

var _del = require('del');

var _del2 = _interopRequireDefault(_del);

var _webpack = require('webpack');

var _webpack2 = _interopRequireDefault(_webpack);

var _webpackProductionConfig = require('./webpack.production.config');

var _webpackProductionConfig2 = _interopRequireDefault(_webpackProductionConfig);

var $ = (0, _gulpLoadPlugins2['default'])();

var config = {
    src: 'app/',
    dist: 'dist/',
    cssSrc: ['app/{styles,css}/{,*/}*.scss', '!app/{styles,css}/_*/*']
};

_gulp2['default'].task('html', function () {
    var assets = $.useref.assets({
        searchPath: ['.tmp', '.tmp/scripts', '.tmp/styles'],
        transformPath: function transformPath(filePath) {
            return filePath;
        }
    });

    return _gulp2['default'].src(['app/views/{detail,list,mylist,clear}.html']).pipe(assets).pipe($.rev()).pipe(_gulp2['default'].dest('dist')).pipe(assets.restore()).pipe($.useref()).pipe($.revReplace({
        prefix: 'http://static.tuan.ymatou.com'
    })).pipe($.filter('*.html')).pipe(_gulp2['default'].dest('views'));
});

_gulp2['default'].task('webpack', function (callback) {
    (0, _webpack2['default'])(_webpackProductionConfig2['default'], function (err, status) {
        if (err) {
            console.err('webpack ERR: ' + err);
        }
        _gulp2['default'].start('copy:html');
        callback && callback();
    });
});

_gulp2['default'].task('copy:html', function () {
    return _gulp2['default'].src('dist/views/*.html').pipe(_gulp2['default'].dest('views'));
});

_gulp2['default'].task('clean:pre', _del2['default'].bind(null, ['.tmp', 'views', 'dist']));

//rm node-sass 会出错 删除unlink失效，暂时不删除 后续让发布remove
_gulp2['default'].task('clean:post', _del2['default'].bind(null, ['1dist/app', 'node_modules/*', '!node_modules/express', '!node_modules/ymt-node-watch', '!node_modules/node-sass']));

_gulp2['default'].task('build:test', ['clean:pre', 'webpack'], function () {
    _gulp2['default'].start('html');
});

_gulp2['default'].task('build', ['build:test'], function () {
    _gulp2['default'].start('clean:post');
});
